package cn.com.blueInfo.HaiYuan.business.journal.service;

import cn.com.blueInfo.utils.result.BootstrapTable;
import cn.com.blueInfo.utils.result.ResultInfo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 日记账基本信息接口服务
 * @ClassName: JournalBaseService
 * @author suxch
 * @date 2020年9月25日  上午10:18:43
 */
public interface JournalBaseService {

    /**
     * 分页查询日记账基本数据
     * @Title: queryJournalBaseDataByPage
     * @param request
     * @return BootstrapTable
     * @throws
     */
    BootstrapTable queryJournalBaseDataByPage(HttpServletRequest request);

    /**
     * 新增日记账基本数据
     * @Title: addJournalBaseData
     * @param request
     * @return ResultInfo
     * @throws
     */
    ResultInfo addJournalBaseData(HttpServletRequest request);

    /**
     * 更新日记账基本数据
     * @Title: replaceJournalBaseInfo
     * @param request
     * @return ResultInfo
     * @throws
     */
    ResultInfo replaceJournalBaseInfo(HttpServletRequest request);

    /**
     * 删除日记账基本数据
     * @Title: removeJournalBaseInfo
     * @param request
     * @return ResultInfo
     * @throws
     */
    ResultInfo removeJournalBaseInfo(HttpServletRequest request);

    /**
     * 查询合计日记账基本数据
     * @Title: querySumJournalBaseInfo
     * @param request
     * @return
     * @return ResultInfo
     * @throws
     */
    ResultInfo querySumJournalBaseInfo(HttpServletRequest request);

    /**
     * 查询月份数据
     * @Title: queryMonthData
     * @param request
     * @return ResultInfo
     * @throws
     */
    ResultInfo queryMonthData(HttpServletRequest request);

    /**
     * 导出Excel文件
     * @Title: exportExcelFile
     * @param request
     * @param response
     * @return void
     * @throws
     */
    void exportExcelFile(HttpServletRequest request, HttpServletResponse response);

    /**
     * 添加上月结余数据
     * @Title: addLastMonthBalanceData
     * @param request
     * @return ResultInfo
     * @throws
     */
    ResultInfo addLastMonthBalanceData(HttpServletRequest request);

    /**
     * 获取分类汇总的日期数据
     * @Title: querySumDateData
     * @param request
     * @return ResultInfo
     * @throws
     */
    ResultInfo querySumDateData(HttpServletRequest request);

    /**
     * 查询分类汇总数据
     * @Title: queryItemsSumData
     * @param request
     * @return BootstrapTable
     * @throws
     */
    BootstrapTable queryItemsSumData(HttpServletRequest request);

    /**
     * 查询单一科目分类汇总数据
     * @Title: queryJournalBaseItemsSumData
     * @param request
     * @return ResultInfo
     * @throws
     */
    ResultInfo queryJournalBaseItemsSumData(HttpServletRequest request);

    /**
     * 重算每月结余数据
     * @Title: rerunMonthlyBalanceData
     * @param request
     * @return ResultInfo
     * @throws
     */
    ResultInfo rerunMonthlyBalanceData(HttpServletRequest request);

}
